﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002ED RID: 749
	public class TGroupingSetItem : TParseTreeNode
	{
		// Token: 0x06001A56 RID: 6742 RVA: 0x0032DD43 File Offset: 0x0032BF43
		public override void init(object arg1)
		{
			if (arg1 is TRollupCube)
			{
				this.rollupCubeClause = (TRollupCube)arg1;
				return;
			}
			if (arg1 is TGroupingExpressionItem)
			{
				this.expressionItem = (TGroupingExpressionItem)arg1;
				return;
			}
			if (arg1 is TExpression)
			{
				this.grouping_expression = (TExpression)arg1;
			}
		}

		// Token: 0x06001A57 RID: 6743 RVA: 0x0032DD84 File Offset: 0x0032BF84
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.rollupCubeClause != null)
			{
				this.rollupCubeClause.doParse(psql, plocation);
				return;
			}
			if (this.expressionItem != null)
			{
				this.expressionItem.doParse(psql, plocation);
				return;
			}
			if (this.grouping_expression != null)
			{
				this.grouping_expression.doParse(psql, plocation);
			}
		}

		// Token: 0x170005DE RID: 1502
		// (get) Token: 0x06001A58 RID: 6744 RVA: 0x0032DDD2 File Offset: 0x0032BFD2
		// (set) Token: 0x06001A59 RID: 6745 RVA: 0x0032DDDA File Offset: 0x0032BFDA
		public virtual TGroupingExpressionItem ExpressionItem
		{
			get
			{
				return this.expressionItem;
			}
			set
			{
				this.expressionItem = value;
			}
		}

		// Token: 0x170005DF RID: 1503
		// (get) Token: 0x06001A5A RID: 6746 RVA: 0x0032DDE3 File Offset: 0x0032BFE3
		// (set) Token: 0x06001A5B RID: 6747 RVA: 0x0032DDEB File Offset: 0x0032BFEB
		public virtual TRollupCube RollupCubeClause
		{
			get
			{
				return this.rollupCubeClause;
			}
			set
			{
				this.rollupCubeClause = value;
			}
		}

		// Token: 0x06001A5C RID: 6748 RVA: 0x0032DDF4 File Offset: 0x0032BFF4
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x170005E0 RID: 1504
		// (get) Token: 0x06001A5D RID: 6749 RVA: 0x0032DE04 File Offset: 0x0032C004
		// (set) Token: 0x06001A5E RID: 6750 RVA: 0x0032DE0C File Offset: 0x0032C00C
		public virtual TExpression Grouping_expression
		{
			get
			{
				return this.grouping_expression;
			}
			set
			{
				this.grouping_expression = value;
			}
		}

		// Token: 0x06001A5F RID: 6751 RVA: 0x0032DE18 File Offset: 0x0032C018
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			if (this.rollupCubeClause != null)
			{
				this.rollupCubeClause.acceptChildren(v);
			}
			else if (this.expressionItem != null)
			{
				this.expressionItem.acceptChildren(v);
			}
			else if (this.grouping_expression != null)
			{
				this.grouping_expression.acceptChildren(v);
			}
			v.postVisit(this);
		}

		// Token: 0x04001998 RID: 6552
		private TRollupCube rollupCubeClause;

		// Token: 0x04001999 RID: 6553
		private TGroupingExpressionItem expressionItem;

		// Token: 0x0400199A RID: 6554
		private TExpression grouping_expression;
	}
}
